【VFX】ヒットエフェクト作成

December 15, 2022


はじめに

VFXを利用して打撃ヒットエフェクトを作成してみます (ヒットエフェクトとしては少し豪華すぎますが)

あまり高度なことが必要ないためVFX初心者でも簡単に作成できました

幾つかのパーツを作成して組み合わせてヒットエフェクトとしているためそれぞれ各パーツについて流れを説明していきます

Ling

円画像を広げていくエフェクト

以下画像を表示しています。 適当にPhotoshopで作成しました (サイトだと透過されてない… ダウンロードすれば見れます)

4A00D5DA20DAD6D9C8FABCC490D86CD9

VFX全体 6E6AAE1E9CDDD7DD7C08238E55EE2ABC

Spawnは SingleBurst で生成されるパーティクル数を一つ ( 引数から取るようにしてますが基本 1 )

213DDBD4E9A3A77C856C3C675A0ED425

Lifetimeは調整できるように引数を設定しています。 また、SetAngle.XYZ に設定される値をランダムに設定します。

これは画像自体に凹み等あるため、パーティクルが毎回同じ向きだとアップ時に違和感が出るかなと思い回転させています

30DB87CA079BAE0F618CDFCC6DD2B690

Updateは特になし。Output

3B729459A8FD9650F0429C37778DC938

MainTexture

円画像を指定。 BlendModeはAlphaのままです。もし背景が黒の画像を利用する場合は Additive にする必要があります

Set Size over Life

徐々に大きくなるようなAnimationCurveを指定

Set Color over Life

色は適当に決めています

以上でLingの作成は終了

Spark01

火花っぽいエフェクト Z軸に火花が散るようにします 

長さや太さは調整できるようにします

VFX全体 E9C5731CD73D9B2523E4F92266798313

Spawn

任意の数を指定できるように 42DC67F25F6F60BC6D0244F115CD8480

Initialize

Set Volocity Random

パーティクルの速度を設定します。 X、Yは大きくランダムになるように -2 ~ 2 の範囲、Zは + 方向のみに出てほしいため、 0.2 ~ 2 の範囲としています

Set Lifetime Rnadom

ここも適当に

Set Position

Y座標のみ移動できるようにしていますが基本中心から出すので不要でした

532A0F0911750AF1630A979F9AA8ABB1

Output

Orient: Along Velocity

公式 https://docs.unity3d.com/ja/Packages/com.unity.visualeffectgraph@10.7/manual/Block-Orient.html

パーティクルを Velocity の方向に向くようにしています

Set Size over Life

徐々に消えてほしいため右肩下がりのAnimationCurve

Set Scale.XYZ Random

パーティクルのサイズを外から指定したかったため引数から取るようにしています。 Randomなので、太いパーティクルもあれば細いパーティクルもありゆらぎを出しています

Set Color over Life

火花なので最初明るく最後暗くなるようなイメージで設定

E23401B1C71827B12DBB2856F36BE560

Spark02

01と比べて太く、もっとランダム方向に弾かれるようなエフェクト 基本は01と同じです

VFX全体 EEBC660ECC2B4DB3C75223100E446334

基本一緒なので違いのみ抜粋

Update Particle

Turbulence

パーティクルの動きにノイズを加えています。 ぐにっと曲がるような動きを演出

FD340CC6085F9B38DD521D53DA420302

Output

MainTexture

以下 画像を使っています

4A3DB24E456E6B805F826E95B21EAFCB

そして Along Velocity と Set Color over Life で色の変化をつけることで火花感を強くしています

50B3CA702A3318096A7F4549A5CDAD6D

合成

一つのVFXの中でパーツを組み合わせて再生すれば完成

8705DAB33A8C7CB3192553B710AED9F3

パーツごとに分解し、引数を設定できるようにしておくことで他のエフェクトの素材にもなるためめんどくさがらずにSubVFX化しておくのがおすすめです